<?php

class Somi_Form_Inventar extends Zend_Dojo_Form
{
	public function init()
	{
		
		$this->setName('Inventar');
		$this->setAction($this->getView()->url())->setMethod('post');
		$this->addAttribs(array('onSubmit'=>'return validate(this)'));
		
		require_once APPLICATION_BASE.'/library/Somi/Validate/ErrorMessageDe.php';
		
		$translateValidators= new Somi_Validate_ErrorMessageDe();
		$translator = new Zend_Translate('array', $translateValidators->getTranslate());
    	Zend_Validate_Abstract::setDefaultTranslator($translator);
    	
    	#$this->clearDecorators();
		
    	$inventar=new Somi_Models_Inventar();
		$kategoris= $inventar->getKategori();
		$vertragsarten= $inventar->getVertragsart();
		$kostenstellen=$inventar->getKostenstelle();
		#$swtypes= $inventar->getSWtype();
		#$vrtypes=$inventar->getVertragtype();
    	
    	
		$formDecorators=array(
            'FormElements',
        array('HtmlTag',array('tag'=>'dl','class'=>'zend_form')),
            'DijitForm', // hier stand bei dir vorher: 'Form',
        );
                
        
        $elementDecorators=array(
        'DijitElement', // vorher: 'ViewHelper',
        'Errors',
        array(array('data'=>'HtmlTag'),array('tag'=>'div','class'=>'element')),
        array('Label',array('class'=>'left','requiredSuffix' => '*')),
        array(array('row'=>'HtmlTag'),array('tag'=>'div','class'=>'row')),
        );
        
        $buttonDecorators=array(
        'DijitElement', // vorher: 'ViewHelper',
        array(array('data'=>'HtmlTag'),array('tag'=>'div','class'=>'button')),
        array(array('row'=>'HtmlTag'),array('tag'=>'div'))
        );  
		
	
		
		
		
		$filterToLower = new Zend_Filter_StringToLower();
        $filterToLower->setEncoding('UTF-8');
        
        

        #kategori
        $kategoridojo = $this->createElement('FilteringSelect','kategori',array(
		'label'        => 'Kategorien',
        'value'        => '',
        'autocomplete' => false,
        'hasDownArrow'   => 'true',
        'filters'        => array('StringTrim'),
        'style'			=> 'width:245px;',
        #'multiOptions' => $types,
        'onChange'		=>'kategori(this.value) ',
        ));
		foreach($kategoris as $v)
        {
        	$kategoridojo->addMultiOption($v,$v);
        }
        
        $kategori = new Zend_Form_Element_Select('kategori');
        $kategori->setLabel('Kategori')
        ->setDescription('')
        ->setAttrib('onChange','kategori(this.value)');
		foreach($kategoris as $v)
        {
        	$kategori->addMultiOption($v,$v);
        }
        
        
        
        #Vertragsart
        $vertragsartdojo = $this->createElement('FilteringSelect','vertragsart',array(
		'label'        => 'Vertragsart',
        'value'        => '',
        'autocomplete' => false,
        'style'			=> 'width:245px;',
        #'onChange'		=>'setLegalEntities2(this.value)',
        #'multiOptions' => $type_hws,
        ));
		foreach($vertragsarten as $v)
        {
        	$vertragsartdojo->addMultiOption($v,$v);
        }
        $vertragsart=new Zend_Form_Element_Select('vertragsart');
        $vertragsart->setLabel('Vertragsart')->setDescription('');
		foreach($vertragsarten as $v)
        {
        	$vertragsart->addMultiOption($v,$v);
        }
        
        #Vertragsart Sonstiges
        $sonstigesdojo=$this->createElement('ValidationTextBox','sonstiges',array(
        'label'			=> 'Beim Sonstiges',
        'alnum'			=>true,
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Wenn Vertragsart Sonstig ist dann beschreiben Sie es</div>',
        'style'			=> 'width:245px;', 
        'id'			=>'sonstiges',   
        ));
        $sonstiges=new Zend_Form_Element_Text('sonstiges');
        $sonstiges->setLabel('Sonstiges(Vertrag)')
        ->setDescription('')
        ->setRequired(false)
		->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
		#$sonstiges->setAttrib('style','display:;');
		
        
        
        
         /*#Datum start
	      $startdatum=$this->createElement('DateTextBox','startdatum',array(
	              'label'          => 'Kaufdatum',
	              'required'       => true,
	              'invalidMessage' => 'Ungültiges Datum spezifiziert.',
	              #'formatLength'   => 'long',
	          )
	      );
	      
	       #Datum Ende
	      $enddatum=$this->createElement('DateTextBox','enddatum',array(
	              'label'          => 'Garantie ablauf',
	              'required'       => true,
	              'invalidMessage' => 'Ungültiges Datum spezifiziert.',
	              #'formatLength'   => 'long',
	          )
	      );*/
        
        #Produktbezeichnung
        $produktbezeichnungdojo=$this->createElement('ValidationTextBox','produktbezeichnung',array(
        'label'			=> 'Produktbezeichnung',
        'alnum'			=>true,
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Latitude D630, Dell Monitor</div>', 
        'style'			=> 'width:245px;',     
        ));
        $produktbezeichnung=new Zend_Form_Element_Text('produktbezeichnung');
        $produktbezeichnung->setLabel('Produktbezeichnung')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
      	#Kostenstelle
      	$kostenstelledojo = $this->createElement('FilteringSelect','kostenstelle',array(
		'label'        => 'kostenstelle',
        'value'        => '',
      	'PromptMessage'		=> '<div style="width:200px">Welche Abteilung</div>',
        'autocomplete' => false,
      	'style'			=> 'width:245px;', 
        #'multiOptions' => $type_hws,
        ));
		foreach($kostenstellen as $v)
        {
        	$kostenstelledojo->addMultiOption($v,$v);
        }
        
        $kostenstelle=new Zend_Form_Element_Select('kostenstelle');
        $kostenstelle->setLabel('Kostenstelle')->setDescription('');
		foreach($kostenstellen as $v)
        {
        	$kostenstelle->addMultiOption($v,$v);
        }
        
      
        
        # Kunden Nummer
        $kunden_nrdojo=$this->createElement('ValidationTextBox','kunden_nr',array(
        'label'			=> 'Kunden Nr.',
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Finden Sie auf dem Rechnung</div>', 
        'style'			=> 'width:245px;',     
        ));
        $kunden_nr=new Zend_Form_Element_Text('kunden_nr');
        $kunden_nr->setLabel('Kunden Nr.')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        
        # Rechnungssteller
        $rechnungsstellerdojo=$this->createElement('ValidationTextBox','rechnungssteller',array(
        'label'			=> 'Rechnungssteller',
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Welche Firma uns die Rechnung erstellt hat</div>', 
        'style'			=> 'width:245px;',     
        ));
        $rechnungssteller=new Zend_Form_Element_Text('rechnungssteller');
        $rechnungssteller->setLabel('Rechnungssteller')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        # Seriennummer
        $serien_nrdojo=$this->createElement('ValidationTextBox','serien_nr',array(
        'label'			=> 'Serien',
        'required'		=> false, 
        'PromptMessage'		=> '<div style="width:200px">Die Seriennummer eintragen</div>', 
        'style'			=> 'width:245px;',   
        ));
        $serien_nr=new Zend_Form_Element_Text('serien_nr');
        $serien_nr->setLabel('Serien Nr.')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        
        # Hersteller/ Anbieter
        $herstellerdojo=$this->createElement('ValidationTextBox','hersteller',array(
        'label'			=> 'Hersteller',
        'required'		=> false, 
        'PromptMessage'		=> '<div style="width:200px">Dell, Toshiba, Sony</div>', 
        'style'			=> 'width:245px;',   
        ));
        $hersteller=new Zend_Form_Element_Text('hersteller');
        $hersteller->setLabel('Hersteller')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        #weitere Nummer
        $service_nrdojo=$this->createElement('ValidationTextBox','service_nr',array(
        'label'			=> 'Service Nr.',
        'required'		=> false, 
        'PromptMessage'		=> '<div style="width:200px">Tragen Sie den Service Tag einsk iujhfiudhf dsoijfuaiiuh</div>', 
        'style'			=> 'width:245px;',  
        ));
        $service_nr=new Zend_Form_Element_Text('service_nr');
        $service_nr->setLabel('Service Nr.')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        #Rechnungsnummer
        $rechnung_nr=$this->createElement('ValidationTextBox','rechnung_nr',array(
        'label'			=> 'Rechnung Nr.',
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Finden Sie es auf der Rechnung</div>', 
        'style'			=> 'width:245px;',     
        ));
        $rechnung_nr=new Zend_Form_Element_Text('rechnung_nr');
        $rechnung_nr->setLabel('Rechnung Nr.')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        #Rechnungsdatum
        #$rechnungsdatum=new Zend_Dojo_Form();
	    $rechnungsdatum=$this->createElement('DateTextBox','rechnungsdatum',array(
	    		'PromptMessage'		=> 'testtt',
	              'label'          => 'Rechnungsdatum',
	              'required'       => false,
	              'invalidMessage' => 'Ungültiges Datum spezifiziert.',
	              #'formatLength'   => 'long',
	              'style'			=> 'width:245px;',
	    		 #'datePattern' => 'dd-MM-yyyy',
	    		 'validators' => array('Date'),	    		
	          )
	      );
        
        #Lizenz
        $lizenzdojo=$this->createElement('ValidationTextBox','lizenz',array(
        'label'			=> 'Lizenz',
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Lizenz</div>', 
        'style'			=> 'width:245px;',     
        ));
        $lizenz=new Zend_Form_Element_Text('lizenz');
        $lizenz->setLabel('Lizenz')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
        
		#Service Daten
        $servicedojo=$this->createElement('ValidationTextBox','service',array(
        'label'			=> 'Service',
        'required'		=> false,
        'PromptMessage'		=> '<div style="width:200px">Servicenummer für Garantie</div>', 
        'style'			=> 'width:245px;',     
        ));
        $service=new Zend_Form_Element_Text('service');
        $service->setLabel('Service')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower);
        
      	#Service termin
	    $termin=$this->createElement('DateTextBox','termin',array(
	              'label'          => 'Termin',
	              'required'       => false,
	              'invalidMessage' => 'Ungültiges Datum spezifiziert.',
	              #'formatLength'   => 'long',
	              'style'			=> 'width:245px;',
	          )
	     );
         
      /*$this->addElement(
          'HorizontalSlider',
          'horizontal',
          array(
              'label'                     => 'HorizontalSlider',
              'value'                     => 5,
              'minimum'                   => -10,
              'maximum'                   => 10,
              'discreteValues'            => 11,
              'intermediateChanges'       => true,
              'showButtons'               => true,
              'topDecorationDijit'        => 'HorizontalRuleLabels',
              'topDecorationContainer'    => 'topContainer',
              'topDecorationLabels'       => array(
                      ' ',
                      '20',
                      '40',
                      '60',
                      '80',
                      ' ',
              ),
              'topDecorationParams'      => array(
                  'container' => array(
                      'style' => 'height:1.2em; font-size=50%;color:gray;',
                  ),
                  'list' => array(
                      'style' => 'height:1em; font-size=50%;color:gray;',
                  ),
              ),
              'bottomDecorationDijit'     => 'HorizontalRule',
              'bottomDecorationContainer' => 'bottomContainer',
              'bottomDecorationLabels'    => array(
                      '0',
                      '50',
                      '100',
              ),
              'bottomDecorationParams'   => array(
                  'list' => array(
                      'style' => 'height:1em; font-size=50%;color:gray;',
                  ),
              ),
          )
      );*/
	  
      #Bemerkung
      $bemerkungdojo=$this->createElement('simpletextarea','bemerkung',array(
      'label'		=> 'Bemerkung',
      #'style'		=>'height:100px;width:300px;',
      #'height'		=>'100px',
      'PromptMessage'		=> '<div style="width:200px">Noch mher Input</div>',
      'style'    => 'width: 240px; height: 100px;',
      'required'	=> false,
      ));
      	$bemerkung=new Zend_Form_Element_Textarea('bemerkung');
        $bemerkung->setLabel('Bemerkung')
        ->setDescription('')
        ->setRequired(false)
        ->addFilter('StripTags')
		->addFilter('StringTrim')
		->addFilter($filterToLower); 
		
        
      $submitdojo=$this->createElement('SubmitButton','submit',array(
      'label' 		=> 'Senden',
      'class'		=> '',
      'required'	=> false,
      'PromptMessage'		=> '<div style="width:200px">Click um zu speichern</div>',
      'ignore'		=>true,
      ));
     	$submit=new Zend_Form_Element_Submit('submit');
		$submit->setLabel('Speichern');
		$submit->setAttrib('id','submitbutton');
		$submit->setAttrib('class','form-button-left');
      

     	$this->addElements(array($kategoridojo,$vertragsartdojo,$sonstigesdojo,$kostenstelledojo,$herstellerdojo,$produktbezeichnungdojo,$serien_nrdojo,$service_nrdojo,$lizenzdojo,$kunden_nrdojo,$rechnungsstellerdojo,$rechnung_nrdojo,$rechnungsdatum,$servicedojo,$termin,$bemerkungdojo,$submit));
     	#$this->addElements(array($kategoridojo,$vertragsartdojo,$sonstigesdojo,$kostenstelledojo,$herstellerdojo,$produktbezeichnungdojo,$serien_nrdojo,$service_nrdojo,$lizenz,$kunden_nrdojo));
		#$this->addElements(array($kategori,$vertragsart,$sonstiges,$kostenstelle,$hersteller,$produktbezeichnung,$serien_nr,$service_nr,$lizenz,$kunden_nr,$rechnungssteller,$rechnung_nr,$rechnungsdatum,$service,$termin,$bemerkung,$submit));
		
		# Send Elements
		#$this->addElements(array($type,$hwtype,$swtype));
		
		#$this->addDisplayGroup(array($kategori,$vertragsart,$sonstiges),'basisdaten');
		#$this->addDisplayGroup(array($rechnungssteller,$rechnung_nr,$rechnungsdatum),'rechnungsdaten');
		#$this->addDisplayGroup(array($hersteller,$produktbezeichnung,$serien_nr,$service_nr,$lizenz,$kunden_nr),'servicedaten');
		#$this->addDisplayGroup(array($service,$termin,$bemerkung),'angaben');
		#$group=new Zend_Dojo_Form_DisplayGroup(array($kategoridojo,$vertragsart,$sonstiges,$kostenstelle));
		#$this->addDisplayGroup($kategoridojo,'basisdaten');
		#$attribs=array(
        #    'name'   => 'textboxtab',
        #    'legend' => 'Text Elements',
        #    'dijitParams' => array(
        #        'title' => 'Text Elements',
        #    ),);
		#$basisdaten = new Zend_Dojo_Form_SubForm();
		#$rechnungsdaten = new Zend_Dojo_Form_SubForm();
		#$herstellerdaten = new Zend_Dojo_Form_SubForm();
		#$erinnerungsfunktion = new Zend_Dojo_Form_SubForm();
		#$basisdaten->setAttribs($attribs);
		#$rechnungsdaten->setAttribs($attribs);
		#$herstellerdaten->setAttribs($attribs);
		#$erinnerungsfunktion->setAttribs($attribs);
        #$basisdaten->addElements(array($kategoridojo,$vertragsartdojo,$sonstigesdojo));
        #$rechnungsdaten->addElements(array($rechnungsstellerdojo,$rechnung_nrdojo,$rechnungsdatum));
        #$herstellerdaten->addElements(array($herstellerdojo,$produktbezeichnungdojo,$serien_nrdojo,$service_nrdojo,$lizenz,$kunden_nrdojo));
        #$erinnerungsfunktion->addElements(array($servicedojo,$termin,$bemerkungdojo,$submit));
        #$this->addSubForm($basisdaten,'basisdaten');
        #$this->addSubForm($rechnungsdaten,'rechnungsdaten');
        #$this->addSubForm($herstellerdaten,'herstellerdaten');
        #$this->addSubForm($erinnerungsfunktion,'erinnerungsfunktion');
		#$this->addSubForm($basisdaten,'basisform');
      	
      
      	#$this->setDecorators($formDecorators);
		#$this->setElementDecorators($elementDecorators);
		#$this->getElement('submit')->setDecorators($buttonDecorators);
		
	}
}